home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / telecomm / fnordadl / fn132src.zoo / citutil / collide.c < prev    next >
C/C++ Source or Header  |  1991-09-02  |  1KB  |  66 lines

  1. /*
  2.  * collide -- see hash collisions.
  3.  */
  4.  
  5. #include "ctdl.h"
  6. #include "log.h"
  7. #include "config.h"
  8. #include "citlib.h"
  9.  
  10. int logfl;                /* log file descriptor        */
  11. char *program = "collide";
  12.  
  13. void
  14. check(name)
  15. char *name;
  16. {
  17.     int j, h, count;
  18.  
  19.     h = hash(name);
  20.     for (count=j=0; j<cfg.logsize; j++)
  21.     if (logTab[j].ltnmhash == h) {
  22.         getlog(&logBuf, logTab[j].ltlogSlot, logfl);
  23.         printf("hash(%s) -> %s\n", name, logBuf.lbname);
  24.         count++;
  25.     }
  26.     if (count == 0)
  27.     printf("%s not matched\n", name);
  28. }
  29.  
  30. main(argc,argv)
  31. int  argc;
  32. char **argv;
  33. {
  34.     int i;
  35.     PATHBUF fn;
  36.     char name[80];
  37.     extern char VERSION[];
  38.  
  39.     printf("%s for Fnordadel V%s\n", program, VERSION);
  40.     
  41.     if (readSysTab(FALSE)) {
  42.  
  43.     initlogBuf(&logBuf);
  44.  
  45.     ctdlfile(fn, cfg.sysdir, "ctdllog.sys");
  46.     if ((logfl = dopen(fn, O_RDONLY)) < 0)
  47.         crashout("Can't open %s", fn);
  48.  
  49.     if (argc > 1)
  50.         for (i=1; i<argc; i++)
  51.         check(argv[i]);
  52.     else
  53.         while (1) {
  54.         printf("name> ");gets(name);
  55.         if (strlen(name) < 1)
  56.             break;
  57.         check(name);
  58.         }
  59.     dclose(fn);
  60.  
  61.     killlogBuf(&logBuf);
  62.     }
  63.     if (fromdesk())
  64.     hitkey();
  65. }
  66.